package com.cch.stock.task;

import org.apache.log4j.Logger;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.*;

/**
 * Created with IntelliJ IDEA.
 * User: xzhu
 * Date: 2015/03/20
 * Time: 下午4:41
 * 目前不支持分布式  依赖  fixedDelay
 * "0 0 12 * * ?"    每天中午十二点触发
 "0 15 10 ? * *"    每天早上10：15触发
 "0 15 10 * * ?"    每天早上10：15触发
 "0 15 10 * * ? *"    每天早上10：15触发
 "0 15 10 * * ? 2005"    2005年的每天早上10：15触发
 "0 * 14 * * ?"    每天从下午2点开始到2点59分每分钟一次触发
 "0 0/5 14 * * ?"    每天从下午2点开始到2：55分结束每5分钟一次触发
 "0 0/5 14,18 * * ?"    每天的下午2点至2：55和6点至6点55分两个时间段内每5分钟一次触发
 "0 0-5 14 * * ?"    每天14:00至14:05每分钟一次触发
 "0 10,44 14 ? 3 WED"    三月的每周三的14：10和14：44触发
 "0 15 10 ? * MON-FRI"    每个周一、周二、周三、周四、周五的10：15触发
 （1）fixedRate：每隔多少毫秒执行一次该方法
 （2）fixedDelay：当一次方法执行完毕之后，延迟多少毫秒再执行该方法。
 （3）cron：详细配置了该方法在什么时候执行。cron值是一个cron表达式.
 */
@Component
@EnableScheduling
public class TaskWorker {
    private static final Logger logger = Logger.getLogger(TaskWorker.class);
    private static final int LIMIT = 5000;




    /**
     * 每隔3s
     */
    @Scheduled(initialDelay=60*1000,fixedDelay=3*1000)
    public void executeTradeTestJob() {
        String uuid = UUID.randomUUID().toString();
        logger.info("===========================================================");
        logger.info("executeTradeTestJob  标识:["+uuid+"] 任务开始。。。");





        logger.info("executeTradeTestJob  标识:["+uuid+"] 任务结束。。。");
    }
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=2*60*1000,fixedDelay=30*1000)
//    public void executeCancelPushShippingJob() {
//        logger.info("===========================================================");
//        logger.info("executeCancelPushShippingJob 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.CANCEL_PUSH_SHIPPING_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeCancelPushShippingJob 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeCancelPushShippingJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeCancelPushShippingJob 任务结束。。。");
//    }
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=2*60*1000,fixedDelay=30*1000)
//    public void executePushRefundRecordJob() {
//        logger.info("===========================================================");
//        logger.info("executePushRefundRecordJob 任务开始。。。");
////        while (true) {
////            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.PUSH_REFUND_RECORD_TASK, TaskStatus.INIT, LIMIT);
////            if (CollectionUtil.isEmpty(taskDTOList)) {
////                logger.info("executePushRefundRecordJob 中没有待执行任务。。。");
////                break;
////            }
////            logger.info("executePushRefundRecordJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
////            for (EcTaskDTO taskDTO : taskDTOList) {
////                taskDTO.setStartTime(System.currentTimeMillis());
////                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
////                TaskManager.getInstance().runTask(taskDTO);
////            }
////        }
//        logger.info("executePushRefundRecordJob 任务结束。。。");
//    }
//
//
//    /**
//     * 每隔60s
//     */
//    @Scheduled(initialDelay=2*60*1000,fixedDelay=60*1000)
//    public void executeOrderOperationLogParseJob() {
//        logger.info("===========================================================");
//        logger.info("executeOrderOperationLogParseJob 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.ORDER_OPERATION_LOG_PARSE_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeOrderOperationLogParseJob 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeOrderOperationLogParseJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeOrderOperationLogParseJob 任务结束。。。");
//    }
//
//    /**
//     * 每天1点执行一次  (加载客服日报表)
//     */
//    @Scheduled(cron = "0 0 1 * * ?")
//    public void executerOrderDailyCustomer() {
//        SalesOrderService salesOrderService = ServiceManager.getService(SalesOrderService.class);
//        String date = DateUtil.getYesterdayStr(DateUtil.YEAR_MONTH_DATE);
//        logger.info("===========================================================");
//        logger.info("executerOrderDailyCustomer ["+date+"]客服日报表统计任务开始。。。");
//        //统计前一天的数据
//        salesOrderService.saveOrderDailyCustomer(date);
//        logger.info("executerOrderDailyCustomer ["+date+"]客服日报表统计任务结束。。。");
//        logger.info("===========================================================");
//        logger.info("executerOrderDailyShop ["+date+"]客服日报表统计任务开始。。。");
//        //统计前一天的数据
//        salesOrderService.saveOrderDailyShop(date);
//        logger.info("executerOrderDailyShop ["+date+"]客服日报表统计任务结束。。。");
//    }
//
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=2*60*1000,fixedDelay=30*1000)
//    public void executeNoticeTaobaoDummyShippingJob() {
//        logger.info("===========================================================");
//        logger.info("executeNoticeTaobaoDummyShippingJob 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.NOTICE_TAOBAO_DUMMY_SHIPPING_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeNoticeTaobaoDummyShippingJob 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeNoticeTaobaoDummyShippingJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeNoticeTaobaoDummyShippingJob 任务结束。。。");
//    }
//
//    /**
//     * 每隔5 min
//     */
//    @Scheduled(initialDelay=2*60*1000,fixedDelay=5*60*1000)
//    public void executeSendEmailJob() {
//        logger.info("===========================================================");
//        logger.info("executeSendEmailJob 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.SEND_EMAIL_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeSendEmailJob 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeSendEmailJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeSendEmailJob 任务结束。。。");
//    }
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay = 30 * 1000, fixedDelay = 30 * 1000)
//    public void executeSyncMemberJob() {
//        logger.info("===========================================================");
//        logger.info("executeSyncMemberJob 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.MEMBER_SYNC_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeSyncMemberJob 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeSyncMemberJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeSyncMemberJob 任务结束。。。");
//    }
//
//    @Scheduled(initialDelay = 2 * 60 * 1000, fixedDelay = 3 * 60 * 60 * 1000)
//    public void failedTaskNoticeJob() {
//        logger.info("===========================================================");
//        logger.info("failedTaskNoticeJob 任务开始。。。");
//        String receivers = ConfigCacheManager.getConfigValue(MyConstants.TASK_FAIL_NOTICE_RECEIVERS);
//        if(SysUtil.isNotEmpty(receivers)){
//            List<EcTaskDTO> taskDTOList = taskService.findFailedTaskList();
//            if (CollectionUtil.isNotEmpty(taskDTOList)) {
//                logger.info("failedTaskNoticeJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//                StringBuffer sb = new StringBuffer();
//                for (EcTaskDTO taskDTO : taskDTOList) {
//                    sb.append(taskDTO.toString()).append("<br>");
//                }
//                MailSenderInfo mailInfo = new MailSenderInfo();
//                mailInfo.setContent(sb.toString());
////                String receivers[] = new String[]{"peter.zhu@ecovacs.com"};
//                mailInfo.setReceivers(receivers.split(","));
//                mailInfo.setSubject("EC有执行失败的任务！失败任务数："+taskDTOList.size());
//                try {
//                    if(!MailUtil.sendMail(mailInfo)){
//                        logger.error("MailUtil send fail!");
//                    }
//                } catch (Exception e) {
//                    logger.error("MailUtil send fail!",e);
//                }
//            }
//        }
//
//        logger.info("failedTaskNoticeJob 任务结束。。。");
//    }
//
//    //定时推送发货
//    @Scheduled(initialDelay = 30 * 1000, fixedDelay = 30 * 1000)
//    public void pushOmsShippingJob() {
//        logger.info("===========================================================");
//        logger.info("pushOmsShippingJob 任务开始。。。");
//        int limit = 200;
//        while (true) {
//            List<EcSalesOrderPushTaskDTO> ecSalesOrderPushTaskDTOs = ecSalesOrderPushTaskService.getAndSetPushingStatus(limit);
//            if (CollectionUtil.isEmpty(ecSalesOrderPushTaskDTOs)) {
//                break;
//            }
//            Set<Long> salesOrderIdSet = new HashSet<>();
//            for (EcSalesOrderPushTaskDTO ecSalesOrderPushTaskDTO : ecSalesOrderPushTaskDTOs) {
//                salesOrderIdSet.add(ecSalesOrderPushTaskDTO.getEcSalesOrderId());
//            }
//            List<Long> salesOrderIdList = new ArrayList<>(salesOrderIdSet);
//            if (!ConcurrentManager.lock(ConcurrentScene.EC_SALES_ORDER, salesOrderIdList)) {
//                String lockFailMsg = "异步推送的一批销售单,其中部分正在被操作,这一批发货任务,稍后执行.";
//                logger.info(lockFailMsg + "这一批销售单Id:" + salesOrderIdList);
//                ecSalesOrderPushTaskService.setTimeOut(ecSalesOrderPushTaskDTOs,30000);
//                continue;
//            }
//            try {
//                ecSalesOrderPushTaskService.handlePushTask(ecSalesOrderPushTaskDTOs);
//            }finally {
//                ConcurrentManager.release(ConcurrentScene.EC_SALES_ORDER, salesOrderIdList);
//            }
//        }
//        logger.info("pushOmsShippingJob 任务结束。。。");
//    }
//
//
//    /**
//     * 转化京东的订单为科沃斯订单
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeJdTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeJdTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeJdTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.JD_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeJdTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeJdTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeJdTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
// /**
//     * 转化苏宁的订单为科沃斯订单
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeSnTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeSnTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeSnTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.SN_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeSnTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeSnTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeSnTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
//
//    /**
//     * 转化工行的订单为科沃斯订单
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeICBCTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeICBCTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeICBCTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.ICBC_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeICBCTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeICBCTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeICBCTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
//
//    /**
//     * 转化当当的订单为科沃斯订单
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeDDTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeDDTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeDDTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.DD_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeDDTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeDDTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeDDTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeVipTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeVipTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeVipTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.VIP_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeVipTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeVipTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeVipTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeYHDTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeYHDTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeYHDTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.YHD_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeYHDTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeYHDTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeYHDTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeCCBTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeCCBTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeCCBTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.CCB_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeCCBTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeCCBTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeCCBTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeCMBTradeConvertToEcJob() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeCMBTradeConvertToEcJob  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeCMBTradeConvertToEcJob 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.CMB_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeCMBTradeConvertToEcJob 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeCMBTradeConvertToEcJob  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeCMBTradeConvertToEcJob  标识:["+uuid+"] 任务结束。。。");
//    }
//
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeCMBTradeCallback() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeCMBTradeCallback  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeCMBTradeCallback 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.CMB_TRADE_CALLBACK_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeCMBTradeCallback 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeCMBTradeCallback  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeCMBTradeCallback  标识:["+uuid+"] 任务结束。。。");
//    }
//
//    /**
//     * 每隔30s 将官网的数据转换为科沃斯的订单
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=30*1000)
//    public void executeGWTradeCallback() {
//        String uuid = UUID.randomUUID().toString();
//        logger.info("===========================================================");
//        logger.info("executeGWTradeCallback  标识:["+uuid+"] 任务开始。。。");
//
//        logger.info("executeGWTradeCallback 标识:["+uuid+"] Use SingleThread 。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.WEBSITE_TRADE_CONVERT_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeGWTradeCallback 标识:["+uuid+"] 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeGWTradeCallback  标识:["+uuid+"] 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeGWTradeCallback  标识:["+uuid+"] 任务结束。。。");
//    }
//    /**
//     * 每隔30s
//     */
//    @Scheduled(initialDelay = 30 * 1000, fixedDelay = 30 * 1000)
//    public void executeSyncOriginalSalesOrderJob() {
//        logger.info("===========================================================");
//        logger.info("executeSyncOriginalSalesOrderJob 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.SYNC_ORIGINAL_SALES_ORDER_TASK, TaskStatus.INIT, LIMIT);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("executeSyncOriginalSalesOrderJob 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("executeSyncOriginalSalesOrderJob 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("executeSyncOriginalSalesOrderJob 任务结束。。。");
//    }
//
//    /**
//     * 推送发票到oms
//     * 每隔30分，
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=5*60*1000)
//    public void pushInvoiceTask() {
//        logger.info("===========================================================");
//        logger.info("pushInvoiceTask 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.PUSH_INVOICE_TO_OMS_TASK, TaskStatus.INIT, 100000);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("pushInvoiceTask 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("pushInvoiceTask 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                //拿到昨天之前的数据，进行推送
//                if(NumberUtil.compareLong(System.currentTimeMillis(),(taskDTO.getCreateTime()+DateUtil.DAY_MILLION_SECONDS))>0){//
//                    taskDTO.setStartTime(System.currentTimeMillis());
//                    taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                    TaskManager.getInstance().runTask(taskDTO);
//                }
//            }
//            break;
//        }
//        logger.info("pushInvoiceTask 任务结束。。。");
//    }
//
//    /**
//     * 推送发票到oms
//     * 每隔30分，
//     */
//    @Scheduled(initialDelay=30*1000,fixedDelay=5*60*1000)
//    public void uploadInvoiceTask() {
//        logger.info("===========================================================");
//        logger.info("uploadInvoiceTask 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.UPLOAD_E_INVOICE_TO_PLATFORM, TaskStatus.INIT, 100000);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("uploadInvoiceTask 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("uploadInvoiceTask 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("uploadInvoiceTask 任务结束。。。");
//    }
//    /**
//     * 每天1点执行一次 历史订单归档
//     */
//     @Scheduled(cron = "0 0 1 * * ?")
//    public void moveHistoryOrder() {
//        SalesOrderHistoryService salesOrderHistoryService = ServiceManager.getService(SalesOrderHistoryService.class);
//        int days = NumberUtil.intValue(ConfigCacheManager.getConfigValue(MyConstants.MOVE_SALES_ORDER_DAYS));
//        if (days <= 0) {
//            logger.info("归档配置move.sales.order.days:" + days + "<=0 不执行归档操作");
//            return;
//        }
//        int pageSize = 2000;
//        Long moveTime = DateUtil.getInnerDayTime(- days);
//        logger.info("===========================================================");
//        String moveDateStr = DateUtil.convertDateLongToString(moveTime, DateUtil.ALL);
//        logger.info("execute moveHistoryOrder 归档" + moveDateStr + "之前的销售单任务开始。。。");
//        int totalCount = 0;
//        try {
//            do {
//                Set<Long> orderIds = salesOrderHistoryService.getNeedMoveSalesOrderIds(moveTime, pageSize);
//                salesOrderHistoryService.moveToHistory(orderIds);
//                totalCount += CollectionUtil.getSize(orderIds);
//                logger.info("execute moveHistoryOrder 归档正在执行" + moveDateStr + "之前的销售单任务结束，已经归档" + totalCount + "笔订单");
//                if (CollectionUtil.isEmpty(orderIds)) {
//                    break;
//                }
//            } while (true);
//        } catch (Exception e) {
//            logger.error("execute moveHistoryOrder 归档" + moveDateStr + "之前的销售单任务异常，本次归档" + totalCount + "笔订单",e);
//        }
//        logger.info("execute moveHistoryOrder 归档" + moveDateStr + "之前的销售单任务结束，本次归档" + totalCount + "笔订单");
//    }
//
//
//    /**
//     * 每隔10s  将截单回调通知官网
//     */
//    @Scheduled(initialDelay=2*60*1000,fixedDelay=10*1000)
//    public void cancelOrderCallBackTask() {
//        logger.info("===========================================================");
//        logger.info("cancelOrderCallBackTask 任务开始。。。");
//        while (true) {
//            List<EcTaskDTO> taskDTOList = taskService.findTaskList(TaskType.CANCEL_ORDER_CALL_BACK_TASK, TaskStatus.INIT, 100000);
//            if (CollectionUtil.isEmpty(taskDTOList)) {
//                logger.info("uploadInvoiceTask 中没有待执行任务。。。");
//                break;
//            }
//            logger.info("cancelOrderCallBackTask 中待执行任务数为[" + taskDTOList.size() + "]。。。");
//            for (EcTaskDTO taskDTO : taskDTOList) {
//                taskDTO.setStartTime(System.currentTimeMillis());
//                taskDTO.setExecuteHost(SysUtil.getLocalHostIP());
//                TaskManager.getInstance().runTask(taskDTO);
//            }
//        }
//        logger.info("cancelOrderCallBackTask 任务结束。。。");
//    }
}